A wide variety of memory devices can be used to maintain and store data and instructions for various computers and similar systems. In particular, flash memory is a type of electronic memory media that can be rewritten and that can retain content without consumption of power. Unlike dynamic random access memory (DRAM) devices and static random memory (SRAM) devices in which a single byte can be erased, flash memory devices are typically erased in fixed multi-bit blocks or sectors. Flash memory technology can include NOR flash memory and/or NAND flash memory, for example. NOR flash memory evolved from electrically erasable read only memory (EEPROM) chip technology, in which, unlike flash memory, a single byte can be erased; and NAND flash memory evolved from DRAM technology. Flash memory devices typically are less expensive and denser as compared to many other memory devices, meaning that flash memory devices can store more data per unit area.
Flash memory has become popular, at least in part, because it combines the advantages of the high density and low cost of EPROM with the electrical erasability of EEPROM. Flash memory is nonvolatile; it can be rewritten and can hold its content without power. It can be used in many portable electronic products, such as cell phones, portable computers, voice recorders, thumbnail drives and the like, as well as in many larger electronic systems, such as cars, planes, industrial control systems, etc. The fact that flash memory can be rewritten, as well as its retention of data without a power source, small size, and light weight, have all combined to make flash memory devices useful and popular means for transporting and maintaining data.
Typically, when data is stored in a physical location (e.g., physical block address (PBA)) in a memory device, a logical block address (LBA) can be associated with the data to facilitate retrieval of the data from the memory by a host. An address translation table can be used to store the translations of LBAs to the PBAs. When the host requests data from or desires to write data to a particular LBA, the address translation table can be accessed to determine the PBA that is associated with the LBA. The LBA associated with the data can remain the same even if the PBA where the data is stored changes. For example, a block of memory containing the PBA can have antiquated data in other memory locations in the block. The block of memory can be erased to reclaim the block, and valid data stored in the block, including the data in the PBA, can be moved to new physical locations in the memory. While the PBA of the data is changed, the LBA can remain the same. The address translation table can be updated to associate the new PBA with the LBA.
When a host processor desires to access a memory location, the host processor can send a search command to the memory that specifies the LBA the host processor wants to access. The LBA can be associated with a PBA, where the PBA can be in a block of memory that can contain a plurality of pages, for example, 512 pages. Once the desired physical memory location is verified, the data can be loaded and transferred to the host processor.
Typically, when a host processor desires a significant amount of data that is stored across more than one memory component, each memory component is issued a command to load and transfer data stored in that particular memory component. When one of the memory components finishes loading a piece of data associated with its load and transfer command, that memory component sits idle and/or does not transfer the loaded data until the other memory components have completed their loading of data, because the host processor expects the data to be transferred to it in a particular order. As a result, there can be a significant amount of time wasted as memory components sit idle with loaded data waiting for transfer to the host processor.
It is desirable for a memory component to be able to load and transfer data without regard to the status of other memory components. It is also desirable to reduce the amount of idle time of memory components, for example, with regard to data transfers. Further, it is desirable to improve system performance with regard to data transfers.